本教程將指導您逐步構建機器人或任何其他項目的清晰仿真模型。為了具有美觀,快速顯示,快速仿真和穩定的仿真模型,這是一個非常重要的主題,也許是最重要的方面。
為了說明模型的構建過程,我們將構建以下操縱器:

[機械手模型]
在構建新模型時,首先,我們僅處理它的視覺方面:動態方面(其簡化,優化模型的不合理之處),關節,傳感器等將在以後階段進行處理。
現在,我們可以使用[菜單欄->添加->基本形狀-> ...]在CoppeliaSim中直接創建基本形狀。這樣做時,我們可以選擇創建純形狀或常規形狀。純形將針對動態交互進行優化,也可以直接動態啟用(例如,跌落,碰撞,但是可以在以後禁用)。基本形狀將是簡單的網格,對於我們的應用程序,可能沒有足夠的細節或幾何精度。在這種情況下,我們的另一個選擇是從外部應用程序導入網格。
從外部應用程序導入CAD數據時,最重要的是確保CAD模型不太重,即不包含太多三角形。此要求很重要,因為重型模型的顯示速度很慢,並且還會減慢以後可能使用的各種計算模塊(例如最小距離計算或動力學)。以下示例通常是一事無成(即使我們會在後面看到,即使有方法可以簡化CoppeliaSim中的數據):

[複雜的CAD數據(實體和線框)]
上面的CAD數據非常重:它包含許多三角形(超過47'000個),如果我們只在空的場景中使用單個三角形的實例,這是可以的。但是大多數時候,您將需要模擬同一機器人的多個實例,連接各種類型的抓手,並可能使這些機器人與其他機器人,設備或環境進行交互。在這種情況下,模擬場景可能很快變得太慢。通常,我們建議對不超過2萬個三角形的機器人進行建模,但是在大多數情況下,5 000至10 000個三角形也可以。記住:在幾乎所有方面,少即是好。
是什麼使上述模型如此沉重?首先,包含孔和小細節的模型將需要更多的三角形面才能正確表示。因此,如果可能,請嘗試從原始模型數據中刪除所有的孔,螺釘,物體的內部等。如果您將原始模型數據表示為參數化曲面/對象,則在大多數情況下,選擇項目並刪除它們(例如在Solidworks中)通常很簡單。第二個重要步驟是以有限的精度導出原始數據:大多數CAD應用程序都允許您指定導出的網格的細節級別。當工程圖由大小對象組成時,分幾步導出對象可能也很重要。
CoppeliaSim當前支持以下CAD數據格式:OBJ,STL,DXF,3DS(僅Windows)和Collada。還支持URDF,但此處未提及,因為它不是基於純網格的文件格式。
現在,假設我們已按照上一節中所述應用了所有可能的簡化。導入後,我們可能最終仍然會留下一個過重的網格:

[導入的CAD數據]
您會注意到整個機器人是作為單個網格導入的。稍後我們將看到如何對其進行適當劃分。還要注意導入的網格的方向錯誤:最好保持其方向不變,直到構建整個模型為止,因為如果在以後的階段中我們要導入與同一機器人相關的其他項目,它們將自動具有相對於原始網格的正確位置/方向。
在此階段,我們可以使用多種功能來簡化網格:
- 自動網格劃分:允許為未通過公共邊鏈接在一起的所有元素生成新形狀。這並不總是適用於選定的網格,但是總是值得一試的,因為與必須同時處理所有元素相比,處理網格元素可以為我們提供更多的控制權。可以通過[菜單欄->編輯->分組/合併->分割所選形狀]訪問該功能。有時,網格劃分會超出預期。在這種情況下,只需將邏輯上屬於一起的元素(即,具有相同的視覺屬性並且屬於同一鏈接的一部分)合併回一個單一形狀([菜單欄->編輯->分組/合併->合併選定的形狀])。
- 提取凸包:通過將其轉換為凸包來簡化網格。可以通過[菜單欄->編輯->將選擇變形為凸形]來訪問該功能。
- 抽取網格:減少網格中包含的三角形數量。可以通過[菜單欄->編輯->縮小所選形狀...]訪問該功能。
- 刪除網格的內部:允許通過刪除其內部來簡化網格。此功能基於視覺傳感器,根據所選設置可能會或多或少地令人滿意。可以通過[菜單欄->編輯->提取選定形狀的內部]訪問該功能。
沒有/可以應用上述功能的預定義順序(列表中的第一項除外,應始終首先嘗試該項),它在很大程度上取決於我們要簡化的網格的幾何形狀。下圖說明了應用於導入的網格的上述功能(假設列表中的第一項對我們不起作用):

[凸包,抽取網格並在內部提取]
請注意,凸包在現階段如何對我們沒有幫助。我們決定首先使用網格抽取功能,然後運行兩次該功能,以將三角形的數量總共除以50。完成後,我們提取簡化形狀的內部並將其丟棄。我們最終得到的網格總共包含2'660個三角形(原始導入的網格包含了136'000個三角形!)。形狀包含的三角形/頂點的數量可以在形狀幾何對話框中看到。對於整個機器人模型,2'660三角形是極少的三角形,因此視覺外觀可能會因此受到影響。
在這一階段,我們可以開始將機器人劃分為單獨的鏈接(請記住,我們目前整個機器人只有一個形狀)。您可以通過兩種不同的方式執行此操作:
- 自動網格劃分:此功能已在上一節中進行了描述,它將檢查形狀並為未通過公共邊鏈接在一起的所有元素生成新形狀。這並不總是可行,但總是值得嘗試的。可以通過[菜單欄->編輯->分組/合併->分割所選形狀]訪問該功能。
- 手動網格劃分:通過三角形編輯模式,您可以手動選擇邏輯上不屬於邏輯的三角形,然後單擊“ 提取形狀”。這將在場景中生成新形狀。完成該操作後,刪除選定的三角形。
對於我們的網格,方法1可以正常工作:

[網格劃分]
現在,我們可以進一步細化/簡化單個形狀。有時,如果改用凸包,形狀可能會看起來更好。有時,您將不得不反複使用上述幾種技術,以獲得所需的結果。以以下網格為例:

[進口網]
上面形狀的問題是,由於其中包含孔,我們無法很好地簡化它。因此,我們必須通過形狀編輯模式採用更複雜的方法,在該模式下,我們可以提取邏輯上屬於同一凸形子實體的單個元素。此過程可能需要進行多次迭代:我們首先提取3個近似凸元素。現在,我們忽略作為兩個孔的一部分的三角形。在形狀編輯模式下編輯形狀時,可以方便地切換可見性圖層,以查看其他場景項所覆蓋的內容。

[步驟1]
我們最終得到三個形狀的總和,但是其中兩個將需要進一步改進。現在我們可以擦除作為孔的一部分的三角形。最後,我們分別提取3種形狀的凸包,然後將其與[菜單欄->編輯->分組/合併->合併所選形狀]合併在一起:

[第2步]
在CoppeliaSim中,我們可以啟用/禁用每種形狀的邊緣顯示。我們還可以指定邊緣顯示時要考慮的角度。相似的參數是陰影角,它指示形狀將在多方面顯示。這些參數以及其他一些參數(例如形狀顏色)可以在形狀屬性中進行調整。請記住,形狀有多種口味。到目前為止,在本教程中,我們僅涉及簡單形狀:簡單形狀具有一組視覺屬性(即,一種顏色,一個陰影角度等)。如果合併兩個形狀,則結果將是一個簡單的形狀。您還可以對形狀進行分組,在這種情況下,每個形狀將保留其視覺屬性。
在下一步中,我們可以合併邏輯上屬於一起的元素(如果它們屬於同一剛性元素,並且具有相同的視覺屬性)。然後,我們更改各種元素的視覺屬性。調整具有不同顏色和視覺屬性的幾種形狀的最簡便方法,如果我們使用特定的字符串來命名顏色,則以後可以輕鬆地以編程方式更改該顏色,即使該形狀是複合形狀的一部分。然後,我們選擇所有具有相同視覺屬性的形狀,然後控制選擇已調整的形狀,然後單擊“ 應用於選擇”,一次是“ 顏色”,一次是其他屬性,在形狀屬性中:這會將所有視覺屬性轉移到選定的形狀(如果提供的話,包括顏色名稱)。我們最終得到17個單獨的形狀:

[調整後的視覺屬性]
現在,我們可以使用[菜單欄->編輯->分組/合併->分組所選形狀]對屬於同一鏈接的形狀進行分組。我們最終得到7個形狀:機器人的基礎(或機器人的層次結構樹的基礎)和6個移動鏈接。正確命名對像也很重要:您可以通過雙擊場景層次結構中的對象名稱來做到這一點。基礎應該始終是機器人或模型名稱,其他對象應始終包含基礎對象名稱,例如:robot(base),robot_link1,robot_proximitySensor等。通過默認,形狀將分配給可見性層1,但是可以可以更改對象的通用屬性。默認情況下,僅場景的可見性層1-8被激活。現在,我們有以下內容(模型ResizableFloor_5_25在模型屬性對話框中暫時不可見):

[構成機器人的各個要素]
創建或修改形狀時,CoppeliaSim將自動設置其參考框架的位置和方向。形狀的參考框架將始終位於形狀的幾何中心。將選擇框架方向,以便形狀的邊界框保持盡可能小。這並不總是看起來不錯,但是我們隨時可以隨時調整形狀的參考框架的方向。現在,我們可以使用[菜單欄->編輯->重定向邊界框->使用世界參考框架]重新調整所有已創建形狀的參考框架。您可以在形狀幾何對話框中有更多選項來重新定向參考系。
現在,我們將照顧關節/馬達。大多數時候,我們知道每個關節的確切位置和方向。在這種情況下,我們只需使用[菜單欄->添加->關節-> ...]添加關節,然後可以通過位置對話框和方向對話框更改它們的位置和方向。在其他情況下,我們只有Denavit-Hartenberg(即DH)參數。在這種情況下,我們可以通過Models / tools / Denavit-Hartenberg聯合creator.ttm中的工具模型來構建關節。,在模型瀏覽器中。有時,我們沒有關於關節位置和方向的信息。然後,我們需要從導入的網格中提取它們。讓我們假設這是我們的情況。無需處理修改過的,更近似的網格,而是打開一個新場景,然後再次導入原始CAD數據。大多數時候,我們可以從原始網格中提取網格或基本形狀。第一步是細分原始網格。如果這不起作用,我們通過三角形編輯模式進行。假設我們可以劃分原始網格。現在,我們可以檢查較小的對象。我們正在尋找旋轉形狀,可以用作在其位置以相同方向創建關節的參考。首先,刪除所有不需要的對象。有時在多個打開的場景中工作也很有用,以便於可視化/操作。在我們的案例中,我們首先關注機器人的基座:它包含一個圓柱體,該圓柱體的第一個關節的位置正確。在三角形編輯模式下,我們有:

[機器人基礎:法線和三角形編輯模式可視化]
我們通過頁面選擇器 工具欄按鈕更改相機視圖,以便從側面查看對象。所述擬合到視圖工具欄按鈕可以派上用場正確幀在版的對象。然後,我們切換到頂點編輯模式,並選擇屬於上光盤的所有頂點。請記住,通過打開/關閉某些層,我們可以隱藏場景中的其他對象。然後我們切換回三角形編輯模式:

[選擇的上光盤,頂點編輯模式(1和2),三角形編輯模式(3)]
現在我們單擊“ 提取圓柱體”(在這種情況下,“ 提取形狀”也將起作用),這只是根據選定的三角形在場景中創建了圓柱體形狀。我們離開編輯模式,放棄更改。現在,通過[菜單欄->添加->關節->旋轉]添加旋轉關節,使其保持選中狀態,然後控制選擇提取的圓柱形狀。在位置對話框的“ 位置”選項卡上,單擊“ 應用於選擇”:這基本上將圓柱體的x / y / z位置複製到關節。現在兩個位置都相同。在“ 方向”對話框的“ 方向”選項卡上,我們還單擊“ 應用於選擇”:現在,所選對象的方向也相同。有時,我們將需要圍繞其自身的參考框架額外旋轉關節90/180度,以獲得正確的方向或旋轉方向。如果需要,我們可以在該對話框的“ 旋轉”選項卡上執行此操作(在這種情況下,請不要忘記單擊“ 自有框架”按鈕)。同樣,我們也可以沿關節的軸移動關節,甚至進行更複雜的操作。這就是我們所擁有的:

[在正確的位置,以正確的方向接合]
現在,我們將關節複製回我們的原始場景並進行保存(不要忘記定期保存您的工作!撤消/重做功能很有用,但不能保護您免受其他不幸事件的影響)。我們對機器人中的所有關節重複上述過程,然後重命名它們。我們還將使所有關節的關節屬性稍長一些,以便查看所有關節。通過默認,關節將分配給可見性層2,但可以在對象的公共屬性中進行更改。現在,我們將所有關節分配給可見性層10,然後為場景臨時啟用可見性層10,以使這些關節也可視化(默認情況下,僅激活場景的可見性層1-8)。這就是我們所擁有的(模型ResizableFloor_5_25在模型屬性對話框中暫時不可見):

[接頭配置正確]
至此,我們可以開始構建模型層次結構並完成模型定義。但是,如果我們希望動態啟用 opur機器人,則還有一個額外的中間步驟:
如果我們希望動態啟用機器人,即對碰撞,跌落等做出反應,那麼我們需要適當地創建/配置形狀:形狀可以是:
- 動態或靜態:動態(或非靜態)形狀會掉落並受到外力/扭矩的影響。另一方面,靜態(或非動態)形狀將保持不變,或跟隨其父級在場景層次中的移動。
- 可響應或不可響應:可響應形狀會引起與其他可響應形狀的碰撞反應。如果它們是動態的,它們(和/或它們的對撞機)的運動將受到影響。另一方面,不負責任的形狀如果與其他形狀發生碰撞,則不會計算碰撞響應。
以上兩點都說明這裡。負責任的形狀應盡可能簡單,以實現快速穩定的仿真。物理引擎將能夠以不同的速度和穩定性模擬以下5種類型的形狀:
- 純形狀:純形狀將穩定並由物理引擎非常有效地處理。缺點是純形狀的幾何形狀受到限制:主要是長方體,圓柱體和球體。如果可能的話,將其用於與其他物品接觸時間較長的物品(例如,人形機器人的腳,串行操縱器的底座,抓手的手指等)。可以使用[菜單欄->添加->基本形狀]創建純形狀。
- 純複合形狀:純複合形狀是幾個純形狀的組合。它的性能幾乎與純形狀一樣,並具有相似的特性。可以通過對幾個純形狀進行分組來生成純複合形狀[菜單欄->編輯->分組/合併->分組所選形狀]。
- 凹凸形狀:凸起的形狀會有點不太穩定,並採取一點點計算時間時通過物理引擎來處理。與純形狀相比,它允許使用更通用的幾何形狀(僅要求:它必須是凸形的)。如果可能,將凸形用於偶爾與其他物品接觸的物品(例如,機器人的各個鏈接)。可以使用[菜單欄->添加->選擇的凸包]或[菜單欄->編輯->將選擇變形為凸形]生成凸形。
- 複合凸形狀或凸分解形狀:凸分解形狀是幾個凸形狀的組合。它的性能幾乎與凸形相同,並具有相似的特性。可以通過將多個凸形分組[菜單欄->編輯->分組/合併->分組選定的形狀],並使用[菜單欄->添加->選擇的凸分解...]來生成凸分解形狀。 ],或使用[菜單欄->編輯->將選擇變形到其凸分解...]。
- 隨機形狀:隨機形狀是既非凸形也不是純淨的形狀。它通常具有較差的性能(計算速度和穩定性)。盡量避免使用隨機形狀。
因此,優先順序為:純形狀,純複合形狀,凸形,複合凸形,最後是隨機形狀。確保還閱讀此頁面。對於要構建的機器人,我們將其基座設為純圓柱體,將其他鏈接設為凸形或凸形分解形狀。
我們也可以將動態啟用的形狀用作機器人的可見部分,但是看起來可能不夠好。因此,相反,我們將為在本教程第一部分中創建的每個可見形狀構建一個動態啟用的副本,該副本將保持隱藏狀態:隱藏部分將代表動態模型,並由物理引擎專用,而可見部分將用於可視化,還用於最小距離計算,接近傳感器檢測等。
我們選擇對像機器人,將其複制並粘貼到新場景中(以保持原始模型不變),然後啟動三角形編輯模式。如果對像機器人是複合形狀,我們首先必須將其取消分組([菜單欄->編輯->分組/合併->取消選定形狀的分組]),然後合併各個形狀([菜單欄->在啟動三角形編輯模式之前,請編輯->分組/合併->合併選定的形狀])。現在,我們選擇代表電源線的幾個三角形,並將其刪除。然後,選擇該形狀中的所有三角形,然後單擊“提取圓柱體”。現在我們可以離開編輯模式,我們的基礎對象表示為純圓柱體:

[純圓柱體生成過程,在三角形編輯模式下]
我們將新形狀(在場景層次結構中雙擊其名稱)重命名為robot_dyn,將其分配給可見性層9,然後將其複製到原始場景。其餘鏈接將建模為凸形或複合凸形。現在,我們選擇第一個移動鏈接(即對象robot_link1),並使用[菜單欄->添加->選擇的凸包]從中生成凸形。我們將其重命名為robot_link_dyn1並將其分配給可見性層9。當提取凸包沒有保留足夠的原始形狀細節時,您仍然可以從其組成元素中手動提取多個凸包,然後將所有凸包與[菜單欄- >編輯->分組/合併->分組選定的形狀]。如果這似乎有問題或很耗時,則可以使用[菜單欄->添加->選擇的凸分解...]自動提取凸分解的形狀:

[原始形狀和凸形吊墜]

[原始形狀和凸形分解形狀吊墜]
現在,我們對所有剩餘的機器人鏈接重複相同的過程。完成後,我們將每個可見的形狀附加到其相應的不可見的動態吊墜上。為此,我們先選擇可見的形狀,然後按住Control鍵並單擊以選擇其動態吊墜,然後選擇[菜單欄->編輯->將最後選擇的對象設為父對象]。通過將可見形狀拖動到場景層次中的動態吊墜上,可以達到相同的結果:

[可見的形狀附加到動態吊墜上]
我們仍然需要注意一些事項:首先,由於我們希望動態形狀僅對物理引擎可見,而對其他計算模塊不可見,因此在對象通用屬性中取消選中動態形狀的所有對象特殊屬性。。
然後,我們仍然必須將動態形狀配置為dynamic和responseable。我們在形狀動力學屬性中執行此操作。首先選擇基本動態形狀(即robot_dyn),然後檢查“ 主體”是否為可響應項。啟用前四個“ 本地可響應掩碼”標誌,並禁用後四個“ 本地可響應掩碼”標誌:對於連續的可響應鏈接不要彼此衝突非常重要。對於機器人中的第一個移動動態鏈接(即robot_link_dyn1),我們還啟用了“ 身體可響應”項,但是這次我們禁用了前四個“ 本地可響應”掩碼標誌,並啟用最後4個本地可響應掩碼標誌。我們對所有其他動態鏈接重複上述過程,同時始終交替使用Local Responsible Mask標誌:一旦定義了模型,則連續的機器人動態形狀在彼此交互時不會產生任何碰撞響應。嘗試始終以這樣一種構造結束:機器人的動態基礎和機器人的動態最後一個鏈接僅啟用了前4個“ 本地可響應掩碼”標誌,以便我們可以將機器人附加到移動平台,或附加一個抓取器連接到機器人的最後一個動態鏈接,而沒有動態碰撞干擾。
最後,我們仍然需要將動態形狀標記為Body is dynamic。我們也在形狀動力學屬性中執行此操作。然後,我們可以手動輸入質量和慣性張量屬性,或者通過單擊“ 計算選定凸形的質量和慣性屬性”來自動計算(推薦)那些值。還請記住這一點以及該動態設計注意事項。機器人的動態基礎是一個特例:大多數情況下,我們需要機器人的基礎(即robot_dyn)為非動態(即靜態),否則,如果單獨使用,則機器人可能會在運動過程中掉落。但是,一旦我們將機器人的底座連接到移動平台上,我們就希望底座變得動態(即非靜態)。我們通過啟用“ 如果獲取父項時設置為動態”項,然後禁用“ 主體為動態項” 來做到這一點。現在運行仿真:除了機器人的基座之外,所有動態形狀都應下降。附加的視覺形狀將跟隨其動態吊墜。
現在我們準備定義模型了。我們從建立模型層次結構開始:通過選擇robot_link_dyn6,然後控制選擇robot_joint6,然後選擇[菜單欄->編輯->使最後一個選中的對象,將最後一個動態機器人鏈接(robot_link_dyn6)附加到其相應的關節(robot_joint6)。父母]。我們也可以做這一步通過簡單的拖動對象robot_link_dyn6到robot_link6在場景層次。現在,我們將robot_joint6附加到robot_link_dyn5上,依此類推,直到到達機器人的底部。現在,我們具有以下場景層次結構:

[機器人模型層次結構]
為模型庫起一個簡單的名字是很好而且更合乎邏輯的,因為模型庫也將代表模型本身。因此,我們將robot重命名為robot_visibleBase,並將robot_dyn重命名為robot。現在,我們選擇層次結構樹的基礎(即對像機械手),並在對象公共屬性中啟用“ 對象為模型基礎”。我們還使對象/模型可以轉移或接受DNA。出現了一個模型包圍盒,包圍了整個機器人。但是,邊界框似乎太大:這是因為邊界框還包含了不可見的項,例如關節。現在,通過對所有關節啟用“不顯示為內部模型”選擇項,將關節從模型邊界框中排除。我們可以對模型中的所有不可見項執行相同的過程。這也是一個有用的選項,可以將大型傳感器或其他項目也排除在模型邊界框之外。我們現在有以下情況:

[機器人模型邊界框]
現在,我們保護模型免受意外修改。我們選擇機器人中所有可見的對象,然後啟用“ 選擇模型的基礎”:如果現在單擊場景中的可見鏈接,則會改為選擇機器人的基礎。這使我們可以像對待單個對像一樣操作模型。我們仍然可以通過按住Shift鍵並單擊場景或在場景層次中選擇對象來選擇機器人中的可見對象。現在,我們將機器人置於正確的默認位置/方向。首先,我們將當前場景保存為參考(例如,如果稍後需要在當前機器人上導入具有相同方向的CAD數據)。然後我們選擇模型並修改其位置/方向適當地。將模型(即其基礎對象)放置在X = 0和Y = 0處被認為是一種好習慣。

[默認配置下的機器人型號]
現在我們運行模擬:由於默認情況下關節不受控制,因此機器人將崩潰。在上一階段添加關節時,我們以力/扭矩模式創建了關節,但其電動機或控制器已禁用(默認情況下)。現在,我們可以根據需要調整關節。在我們的案例中,我們希望為每個控制器都提供一個簡單的PID控制器。在關節動態屬性中,單擊“ 啟用電動機”並調整最大扭矩。然後,我們點擊啟用了控制環,然後選擇位置控制(PID)。現在,我們再次運行仿真:機器人應保持其位置。嘗試切換當前的物理引擎,以查看行為在所有受支持的物理引擎之間是否一致。您可以通過適當的工具欄按鈕,或在常規動力學屬性中執行此操作。
在仿真過程中,我們現在通過“ 動態內容可視化和驗證”工具欄按鈕來驗證場景動態內容。現在,將僅顯示物理引擎考慮的項目,並且該顯示使用顏色編碼。這是非常重要的,始終做到這一點,特別是當預期,為了快速調試模型動態模型不表現。同樣,在仿真過程中請始終查看場景層次:動態啟用的對象應在其名稱的右側顯示一個球形圖標。

[動態內容可視化和驗證]
最後,我們需要準備機器人,以便我們可以輕鬆地將抓取器連接到它,或輕鬆地將機器人連接到移動平台(例如)。可以通過兩種不同的方式將兩個動態啟用的形狀嚴格地彼此附加:
- 通過對它們進行分組:選擇形狀,然後單擊[菜單欄->編輯->分組/合併->對選定形狀進行分組]。
- 通過通過力/扭矩傳感器進行連接:力扭矩傳感器還可以充當兩個單獨的動態啟用形狀之間的剛性鏈接。
在我們的情況下,只有選項2是有意義的。我們使用[菜單欄->添加->力傳感器]創建一個力/扭矩傳感器,然後將其移動到機器人的尖端,然後將其附加到對象robot_link_dyn6上。我們會適當地更改其尺寸和外觀(紅色力/扭矩傳感器通常被視為可選的連接點,請檢查可用的各種機器人型號)。我們還將其名稱更改為robot_attachment:

[附著力/扭矩傳感器]
現在,我們將抓取器模型拖到場景中,使其保持選中狀態,然後按住Control鍵並點按附件力傳感器,然後單擊“ 裝配/拆卸”工具欄按鈕。夾持器到位:

[附帶的抓爪]
抓具知道如何附加自身,因為它在模型定義期間進行了適當的配置。現在,我們還需要正確配置機器人模型,以便它將知道如何將自己附加到移動基座上。我們選擇機器人模型,然後在對象公共屬性中單擊“ 組裝 ” 。為“父項”匹配值設置一個空字符串,然後點擊設置矩陣。這將記住當前基礎對象的局部轉換矩陣,並使用它相對於移動機器人的附著點定位/定向。為了驗證我們做的正確,我們拖動模型Models / robots / mobile / KUKA Omnirob.ttm進入現場。然後,選擇機器人模型,然後在移動平台上按住Control鍵並單擊其中一個附接點,然後單擊“ 組裝/拆卸”工具欄按鈕。我們的機器人應該正確地將自己放置在移動機器人的頂部:

[附帶的機器人]
現在,我們可以向機器人添加其他項目,例如傳感器。在某些時候,我們可能還希望將嵌入式腳本附加到我們的模型中,以便控制其行為或出於各種目的對其進行配置。在這種情況下,請確保了解如何從嵌入式腳本訪問對象句柄。我們還可以通過插件,遠程API客戶端,ROS節點,BlueZero節點或附加組件來控制/訪問/接口模型。
現在,確保已恢復在機械手和抓爪安裝過程中所做的更改,我們折疊了機械手模型的層次樹,選擇了模型的基礎,然後使用[菜單欄->文件->將模型另存為...]。如果我們將其保存在模型文件夾中,則該模型將在模型瀏覽器中可用。
|